/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author CAROLINA
 */
@Entity
@Table(name = "Historial_Cargos")
@NamedQueries({@NamedQuery(name = "HistorialCargos.findAll", query = "SELECT h FROM HistorialCargos h"), @NamedQuery(name = "HistorialCargos.findByCodHistorialCargo", query = "SELECT h FROM HistorialCargos h WHERE h.historialCargosPK.codHistorialCargo = :codHistorialCargo"), @NamedQuery(name = "HistorialCargos.findByAutoridad", query = "SELECT h FROM HistorialCargos h WHERE h.autoridad = :autoridad"), @NamedQuery(name = "HistorialCargos.findByFechaInicio", query = "SELECT h FROM HistorialCargos h WHERE h.fechaInicio = :fechaInicio"), @NamedQuery(name = "HistorialCargos.findByFechaFinal", query = "SELECT h FROM HistorialCargos h WHERE h.fechaFinal = :fechaFinal"), @NamedQuery(name = "HistorialCargos.findByCodCentroCosto", query = "SELECT h FROM HistorialCargos h WHERE h.codCentroCosto = :codCentroCosto"), @NamedQuery(name = "HistorialCargos.findByCodHisDocu", query = "SELECT h FROM HistorialCargos h WHERE h.codHisDocu = :codHisDocu"), @NamedQuery(name = "HistorialCargos.findByDni", query = "SELECT h FROM HistorialCargos h WHERE h.historialCargosPK.dni = :dni"), @NamedQuery(name = "HistorialCargos.findByCodPresupuestal", query = "SELECT h FROM HistorialCargos h WHERE h.codPresupuestal = :codPresupuestal")})
public class HistorialCargos implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected HistorialCargosPK historialCargosPK;
    @Column(name = "Autoridad")
    private String autoridad;
    @Basic(optional = false)
    @Column(name = "Fecha_Inicio")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaInicio;
    @Column(name = "fecha_Final")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaFinal;
    @Column(name = "Cod_CentroCosto")
    private String codCentroCosto;
    @Column(name = "cod_condicion")
    private String codcondicion;
    @Column(name = "cod_his_docu")
    private String codHisDocu;
    @Basic(optional = false)
    @Column(name = "cod_presupuestal")
    private String codPresupuestal;
    @JoinColumn(name = "id_cod_inversion", referencedColumnName = "id_cod_inversion")
    @ManyToOne
    private CodigosInversion idCodInversion;
    @JoinColumn(name = "cuenta_contable", referencedColumnName = "id_cuenta_contable")
    @ManyToOne
    private CuentaContable cuentaContable;
    @JoinColumn(name = "cod_Uni_Organizativa", referencedColumnName = "cod_Uni_Organizativa")
    @ManyToOne
    private UnidadOrganizativa codUniOrganizativa;

    public HistorialCargos() {
    }

    public HistorialCargos(HistorialCargosPK historialCargosPK) {
        this.historialCargosPK = historialCargosPK;
    }

    public HistorialCargos(HistorialCargosPK historialCargosPK, Date fechaInicio, String codPresupuestal) {
        this.historialCargosPK = historialCargosPK;
        this.fechaInicio = fechaInicio;
        this.codPresupuestal = codPresupuestal;
    }

    public HistorialCargos(String codHistorialCargo, String dni) {
        this.historialCargosPK = new HistorialCargosPK(codHistorialCargo, dni);
    }

    public HistorialCargosPK getHistorialCargosPK() {
        return historialCargosPK;
    }

    public void setHistorialCargosPK(HistorialCargosPK historialCargosPK) {
        this.historialCargosPK = historialCargosPK;
    }

    public String getAutoridad() {
        return autoridad;
    }

    public void setAutoridad(String autoridad) {
        this.autoridad = autoridad;
    }

    public Date getFechaInicio() {
        return fechaInicio;
    }

    public void setFechaInicio(Date fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    public Date getFechaFinal() {
        return fechaFinal;
    }

    public void setFechaFinal(Date fechaFinal) {
        this.fechaFinal = fechaFinal;
    }

    public String getCodCentroCosto() {
        return codCentroCosto;
    }

    public void setCodCentroCosto(String codCentroCosto) {
        this.codCentroCosto = codCentroCosto;
    }

    public String getCodHisDocu() {
        return codHisDocu;
    }

    public void setCodHisDocu(String codHisDocu) {
        this.codHisDocu = codHisDocu;
    }

    public String getCodPresupuestal() {
        return codPresupuestal;
    }

    public void setCodPresupuestal(String codPresupuestal) {
        this.codPresupuestal = codPresupuestal;
    }

    public CodigosInversion getIdCodInversion() {
        return idCodInversion;
    }

    public void setIdCodInversion(CodigosInversion idCodInversion) {
        this.idCodInversion = idCodInversion;
    }

    public CuentaContable getCuentaContable() {
        return cuentaContable;
    }

    public void setCuentaContable(CuentaContable cuentaContable) {
        this.cuentaContable = cuentaContable;
    }

    public UnidadOrganizativa getCodUniOrganizativa() {
        return codUniOrganizativa;
    }

    public void setCodUniOrganizativa(UnidadOrganizativa codUniOrganizativa) {
        this.codUniOrganizativa = codUniOrganizativa;
    }

    public String getCodcondicion() {
        return codcondicion;
    }

    public void setCodcondicion(String codcondicion) {
        this.codcondicion = codcondicion;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (historialCargosPK != null ? historialCargosPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof HistorialCargos)) {
            return false;
        }
        HistorialCargos other = (HistorialCargos) object;
        if ((this.historialCargosPK == null && other.historialCargosPK != null) || (this.historialCargosPK != null && !this.historialCargosPK.equals(other.historialCargosPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.HistorialCargos[historialCargosPK=" + historialCargosPK + "]";
    }

}
